package dataImport.model;

public enum StaticAction {

	EMOTE("emote", StaticActionRequirement.ENTITY),

	CREATEOBJECT("createObject", StaticActionRequirement.ENTITY), CREATESTATE("createState", StaticActionRequirement.ENTITY),

	DESTROYOBJECT("destroyObject", StaticActionRequirement.ENTITY), DESTROYSTATE("destroyState", StaticActionRequirement.ENTITY),

	ACTIVATEACTION("activateAction", StaticActionRequirement.ENTITY), DEACTIVATEACTION("deactivateAction", StaticActionRequirement.ENTITY),

	REMOVEPLACE("removePlace", StaticActionRequirement.ENTITY), ADDPLACE("addPlace", StaticActionRequirement.ENTITY),
	
	SHOWOBJECTDESCRIPTION("showObjectDescription", StaticActionRequirement.ENTITY), SHOWPLACEDESCRIPTION("showPlaceDescription", StaticActionRequirement.ENTITY),
	
	LISTACTIONS("listActions", StaticActionRequirement.NOTHING);

	// TODO START_DIALOG;

	private String name;
	
	private StaticActionRequirement requirement;

	StaticAction(final String name, final StaticActionRequirement requirement) {
		this.name = name;
		this.requirement = requirement;
	}

	public static final StaticAction get(final String staticActionName) {
		return valueOf(staticActionName.toUpperCase());
	}

    public String getName() {
    	return name;
    }
	
    public void setName(final String name) {
    	this.name = name;
    }
	
    public StaticActionRequirement getRequirement() {
    	return requirement;
    }

    public void setRequirement(final StaticActionRequirement requirement) {
    	this.requirement = requirement;
    }

	public enum StaticActionRequirement {
		ENTITY, NOTHING;
	}
}
